草庐IT

Java 8 lambdas 按多个字段分组

全部标签

ruby-on-rails - ActiveRecord 急切加载多个 belongs_to 关联

问题我有以下ActiveRecord模型:classPersonbelongs_to:favourite_car,class_name:'Car'belongs_to:business_car,class_name:'Car'belongs_to:home_car,class_name:'Car'end当我想访问所有这三个关联时,它会生成三个选择查询:SELECT*FROMcarsWHEREcars.id=?这本质上是N+1问题。理想情况下,我希望它只生成一个表单查询SELECT*FROMcarsWHEREcars.idIN(?,?,?)可能的解决方案我可以将其移动到一个has_man

ruby - 产生多个参数的链接枚举器

我正在尝试弄清楚Ruby如何处理产生多个参数的链式枚举器。看看这个片段:a=['a','b','c']a.each_with_index.select{|pr|ppr}#prints:#["a",0]#["b",1]#["c",2]a.each_with_index.map{|pr|ppr}#prints:#"a"#"b"#"c"为什么select将参数作为数组生成,而map将它们作为两个单独的参数生成? 最佳答案 尝试:a.each_with_index.map{|pr,last|p"pr:#{pr}last:#{last}"}m

Ruby - 通过对象字段连接对象数组

我有一个对象数组,如下所示:[#,#,#]我想要作为输出:"value1value2value3"我现在在做什么:variable=''array.each{|x|variable这很丑,而且最后还留了一个额外的空间。我想Array::join是我要去的地方,但我找不到从中访问对象字段的方法。是否有另一种类似于加入的方法我应该使用,或者是否有另一种更明智的方法?如有任何建议,我们将不胜感激。 最佳答案 array.map(&:name).join("") 关于Ruby-通过对象字段连接对

ruby - 在 collection_select rails 中选择多个选项

我知道如何组合一个从模型中获取值的简单选择框"PleaseSelectaSector")%>我的问题是如何允许用户选择多个选项,然后将它们存储在模型中。我知道我需要使用:multiple=>true但不确定语法通常对于一个模型的多个条目,我会使用accepts_nested_attributes_for,但我认为我不需要对这个例子这样做是否正确?谢谢 最佳答案 经过一些尝试和错误后确定"PleaseSelectaSector"},{:multiple=>true})%>让我选择多个选项

ruby-on-rails - 如何以一种 rails 形式处理多个模型?

我有以下型号classSurvey我的Controller:defnew@survey=Survey.newsurvey_section=@survey.survey_sections.buildsurvey_section.questions.buildenddefcreate@survey=Survey.new(survey_params)if@survey.saveredirect_to@survey,notice:'Super'elserender'new'endenddefsurvey_paramsparams.require(:survey).permit(:title,:

ruby - 将 lambda 应用于对象

假设我在某处定义了一个变量和lambdaphone="1(234)567-89-01"lambda=->{gsub(/[^0-9]/,'')}如何将lambda应用于手机以获得12345678901?附言我知道我可以采用以下方法:lambda=->(arg){arg.gsub(/[^0-9]/,'')}lambda.call(phone)#=>"12345678901"但我想保持简洁。 最佳答案 你可以使用BasicObject#instance_exec:phone.instance_exec&lambda#=>"12345678

ruby-on-rails - Rails 中字段的自定义序列化

有没有一种方法可以对Rails中的字段进行自定义序列化,一种在保存和加载字段时运行的方法,用于将最终保存在数据库中的字符串转换为字符串/转换为字符串。具体来说,我想要做的是有一个类型符号的字段,如性别,可能的值是:男性和:女性,在数据库中存储“男性”和“女性”。有一些解决方法,例如:defgenderread_attribute(:gender).try(:to_sym)end但这会使obj.attributes保持不变,因此这是一个有漏洞的抽象。 最佳答案 您可以在Rails3.1中做到这一点。您要序列化的对象必须响应load和d

ruby-on-rails - 使用 Delayed::Job 管理多个作业队列

我想使用Delayed::Job(或者可能更适合我的问题的作业队列)将作业分派(dispatch)给多个后台守护进程。我有几个执行不同职责的后台守护进程。每个人都对Rails应用程序队列中的不同作业感兴趣。是否可以使用Delayed::Job,或者可能有更适合此任务的不同作业队列? 最佳答案 从那以后http://github.com/collectiveidea/delayed_job已达到v3.0并包括命名队列!非常适合简单的分组队列需求。 关于ruby-on-rails-使用Del

ruby-on-rails - 使用从ruby中的方法返回的散列在一行中分配多个变量

我有一个返回散列映射{:name=>"Test",:desc=>"TestDescription}的方法。它将始终返回:name和:description。如何用返回的哈希分配2个变量。我可以这样做,但它会调用该方法两次:@name,@desc=get_name_desc_map[:name],get_name_desc_map[:desc]我只想调用一次该方法。 最佳答案 使用Ruby的并行赋值非常简单:@name,@desc=get_name_desc_map.values另一种方法是(如果您不知道原始散列中键的顺序):@nam

ruby-on-rails - 在 Rails 3.2 + SimpleForm 中显示带有嵌套表单错误的字段

我有一个Flight模型嵌套在FlightLog模型中。FlightLog可能包含许多航类。我在Bootstrap安装中使用SimpleForm,这使得在验证失败时用错误类包围带有错误的表单元素成为可能。问题是,即使为嵌套模型触发了验证,simple_fields_for中有错误的字段没有被标记,因此无法确定哪个属性无效。在调用创建操作时检查错误散列后,我可以看到它正确填充了顶层的错误,以及每个资源中嵌套资源的错误。我如何修改simple_form的行为以将错误类添加到每个嵌套模型的控制组以匹配父级的行为?提前致谢。 最佳答案 如果